package cn.jolyoulu.adminweb.controller.sys;

import java.util.List;


import cn.jolyoulu.common.web.security.permission.Permission;
import cn.jolyoulu.adminweb.entity.bo.query.SysLoginLogQueryBO;
import cn.jolyoulu.adminweb.entity.bo.query.SysOperateLogQueryBO;
import cn.jolyoulu.adminweb.entity.vo.SysLoginLogVO;
import cn.jolyoulu.adminweb.entity.vo.SysOperateLogVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import cn.jolyoulu.adminweb.service.ApiSysLogService;
import cn.jolyoulu.common.mybatis.plus.plugin.page.JlPage;
import cn.jolyoulu.common.web.entity.ResultInfo;

/**
 * 系统管理/日志管理
 */
@RestController
@RequestMapping("/api/sys/log")
public class ApiSysLogController {

    @Autowired
    private ApiSysLogService apiSysLogService;

    /**
     * 登录日志-列表查询
     */
    @Permission({"sys:log:basic"})
    @GetMapping(value ="/login/pageList")
    public ResultInfo<JlPage<SysLoginLogVO>> loginPageList(SysLoginLogQueryBO bo) {
		JlPage<SysLoginLogVO> res = apiSysLogService.loginPageList(bo);
		return ResultInfo.success(res);
    }

	/**
     * 登录日志-信息获取
     */
    @Permission({"sys:log:basic"})
    @GetMapping("/login/get/{id}")
    public ResultInfo<SysLoginLogVO> getLoginById(@PathVariable String id) {
        SysLoginLogVO res = apiSysLogService.getLoginById(id);
        return ResultInfo.success(res);
    }

	/**
    * 登录日志-删除
    */
    @Permission({"sys:log:del"})
    @DeleteMapping("/login/del")
    public ResultInfo delLogin(@RequestBody List<String> ids){
        apiSysLogService.delLoginByIds(ids);
        return ResultInfo.success();
    }

    /**
     * 操作日志-列表查询
     */
    @Permission({"sys:log:basic"})
    @GetMapping(value ="/operate/pageList")
    public ResultInfo<JlPage<SysOperateLogVO>> operatePageList(SysOperateLogQueryBO bo) {
        JlPage<SysOperateLogVO> res = apiSysLogService.operatePageList(bo);
        return ResultInfo.success(res);
    }

    /**
     * 操作日志-信息获取
     */
    @Permission({"sys:log:basic"})
    @GetMapping("/operate/get/{id}")
    public ResultInfo<SysOperateLogVO> getOperateById(@PathVariable String id) {
        SysOperateLogVO res = apiSysLogService.getOperateById(id);
        return ResultInfo.success(res);
    }

    /**
     * 操作日志-删除
     */
    @Permission({"sys:log:del"})
    @DeleteMapping("/operate/del")
    public ResultInfo delOperate(@RequestBody List<String> ids){
        apiSysLogService.delOperateByIds(ids);
        return ResultInfo.success();
    }
}